<?php

/**
 * Description of Validacao
 *
 * @author pulis
 */
class Validacao {
    
    private $dados;
    private $erro = array();

    public function set($valor,$nome)
    {
      $this->dados = array('valor' => trim($valor),
                           'nome'  => trim($nome));
      return $this;
    }

    public function obrigatorio()
    {
        if (empty ($this->dados['valor']))
        {
          $this->erro[] = sprintf('O campo %s é obrigatório', $this->dados['nome']);
        }
        return $this;
    }

    public function email()
    {
       if(filter_var($this->dados['valor'], FILTER_VALIDATE_EMAIL))
       {
         $this->erro[] = sprintf('O campo %s só aceita email válido',
                                 $this->dados['nome']);
       }
       return $this;
    }

    public function data()
    {
      // 99-99-9999
      if(!preg_match("/^[0-9]{2}\-[0-9]{2}\-[0-9]{4}$/", $this->dados['valor']))
      {
        $this->erro[] = sprintf('O campo %s só aceita no formato 99-99-9999',
                                 $this->dados['nome']);
      }
      return $this;
    }

    public function tel()
    {
        //(99)9999-9999
        if(!preg_match("/^\([0-9]{2}\)[0-9]{4}\-[0-9]{4}$/", $this->dados['valor']))
        {
            $this->erro[] = sprintf('O campo %s só aceita o formata (99)9999-9999',
            $this->dados['nome']);
        }
        return $this;
    }

    public function validar()
    {
       if(count($this->erro) > 0)
       {
           return FALSE;
       } else {
           return true;
       }
    }

    public function getErrors()
    {
        return $this->erro;
    }
    
}